In multi-matrix mode, vertices are transformed from object-coordinates to
eye-coordinates by the ModelView matrix, then from eye-coordinates to
clip-coordinates by the Projection matrix. A third matrix, the Texture
matrix, is maintained to transform texture coordinates. While in multi-
matrix mode, mmodes MMMMVVVVIIIIEEEEWWWWIIIINNNNGGGG, MMMMPPPPRRRROOOOJJJJEEEECCCCTTTTIIIIOOOONNNN, and MMMMTTTTEEEEXXXXTTTTUUUURRRREEEE specify which of
the three matrices is operated on by matrix modification commands. Many
GL rendering operations, including lighting, texture mapping, and user-
defined clipping planes, require that the matrix mode be multi-matrix.
Both the single matrix that is maintained while mmode is MMMMSSSSIIIINNNNGGGGLLLLEEEE mode,
and the ModelView matrix that is maintained while not in MMMMSSSSIIIINNNNGGGGLLLLEEEE mode,
have a stack depth of 32. The Projection and Texture matrices are not
stacked. Thus matrix commands ppppuuuusssshhhhmmmmaaaattttrrrriiiixxxx and ppppooooppppmmmmaaaattttrrrriiiixxxx should not be
called while the matrix mode is MMMMPPPPRRRROOOOJJJJEEEECCCCTTTTIIIIOOOONNNN or MMMMTTTTEEEEXXXXTTTTUUUURRRREEEE.
Changes between matrix modes MMMMVVVVIIIIEEEEWWWWIIIINNNNGGGG, MMMMPPPPRRRROOOOJJJJEEEECCCCTTTTIIIIOOOONNNN and MMMMTTTTEEEEXXXXTTTTUUUURRRREEEE have no
effect on the matrix values themselves. However, when matrix mode
MMMMSSSSIIIINNNNGGGGLLLLEEEE is entered or left, all matrix stacks are forced to be empty, and
all matrices are initialized to the identity matrix.